#ifndef _WX_HELPDLG_H_
#define _WX_HELPDLG_H_

#include "wx/defs.h"

#if wxUSE_WXHTML_HELP

#include "wx/html/helpdata.h"
#include "wx/window.h"
#include "wx/dialog.h"
#include "wx/frame.h"
#include "wx/config.h"
#include "wx/splitter.h"
#include "wx/notebook.h"
#include "wx/listbox.h"
#include "wx/choice.h"
#include "wx/combobox.h"
#include "wx/checkbox.h"
#include "wx/stattext.h"
#include "wx/html/htmlwin.h"
#include "wx/html/helpwnd.h"
#include "wx/html/htmprint.h"

class wxHtmlHelpController;
class wxHtmlHelpWindow;

class wxHtmlHelpDialog : public wxDialog {
    DECLARE_DYNAMIC_CLASS( wxHtmlHelpDialog )

  public:
    wxHtmlHelpDialog( wxHtmlHelpData* data = NULL ) { Init( data ); }
    wxHtmlHelpDialog( wxWindow* parent, wxWindowID wxWindowID,const wxString& title = wxEmptyString,
                      int style = wxHF_DEFAULT_STYLE, wxHtmlHelpData* data = NULL );
    virtual ~wxHtmlHelpDialog();

    bool Create( wxWindow* parent, wxWindowID id, const wxString& title = wxEmptyString,int style = wxHF_DEFAULT_STYLE );

    wxHtmlHelpData* GetData() { return m_Data; }
    wxHtmlHelpController* GetController() const { return m_helpController; }
    void SetController( wxHtmlHelpController* controller ) { m_helpController = controller; }
    wxHtmlHelpWindow* GetHelpWindow() const { return m_HtmlHelpWin; }
    void SetTitleFormat( const wxString& format );
    virtual void AddToolbarButtons( wxToolBar* ( toolBar ), int ( style ) ) {}
  protected:
    void Init( wxHtmlHelpData* data = NULL );
    void OnCloseWindow( wxCloseEvent& event );
  protected:
    wxHtmlHelpData* m_Data;
    wxString m_TitleFormat;  // title of the help frame
    wxHtmlHelpWindow *m_HtmlHelpWin;
    wxHtmlHelpController* m_helpController;

    DECLARE_EVENT_TABLE()
    DECLARE_NO_COPY_CLASS( wxHtmlHelpDialog )
};

#endif

#endif
